package pantallas;

import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import java.util.*;
public class Seccion {
private int nsec,nestu;
private LinkedList<Estudiante> lestud;
private LinkedList<Estudiante> laprobado;
private LinkedList<Estudiante> lreprobado;
Profesor profesor=new Profesor();

public Profesor getProfesor() {
	return profesor;
}

public void setProfesor(Profesor profesor) {
	this.profesor = profesor;
}
public Estudiante ObtenrEstudiante(int i)
{
	return lestud.get(i);
}
public Estudiante ObtenrAprobado(int i)
{
	return laprobado.get(i);
}
public Estudiante ObtenrReprobado(int i)
{
	return lreprobado.get(i);
}
public Estudiante getE() {
	return e;
}

public void setE(Estudiante e) {
	this.e = e;
}

Estudiante e=new Estudiante();
public Seccion() {
	this.lestud = new LinkedList<Estudiante>();
	this.laprobado=new LinkedList<Estudiante>();
	this.lreprobado=new LinkedList<Estudiante>();
	// TODO Auto-generated constructor stub
}

public Seccion(int nsec, int nestu, 
		Profesor profesor) {
	super();
	this.nsec = nsec;
	this.nestu = lestud.size();
	this.profesor = profesor;
}

public int getNsec() {
	return nsec;
}
public void setNsec(int nsec) {
	this.nsec = nsec;
}
public int getNestu() {
	return lestud.size();
}
public void setNestu(int nestu) {
	
	this.nestu=lestud.size();
}
public void Inscribir(Estudiante estudiante){
	
	lestud.add(estudiante);
	System.out.println("Nombre y Apellido: "+estudiante.getNombre()+" "+ estudiante.getApellido()+ " Cedula: "+estudiante.getCedula());
}
public void Remover(long cedula){
	Iterator It=lestud.iterator();
	int c;
	if (lestud.size()!=0){
	do
	{
		e = (Estudiante)It.next();
		if(e.getCedula()==cedula)
		 
			{
		It.remove();
		c=1;}
		else
			c=0;
		
	}
         while (It.hasNext() && e.getCedula()!=cedula);
	}
}
public boolean Buscar(long cedula){
	
		Iterator It=lestud.iterator();
		
		boolean c=false;
		if (lestud.size()!=0){
			do
		{
			e = (Estudiante)It.next();
			if(e.getCedula()==cedula)
			{c=true;}
			else
				c=false;
			
		}
	         while (It.hasNext() && e.getCedula()!=cedula);
		}
		return c;
		}
public void AplicarEvaluacion(){

	Iterator It=lestud.iterator();

	do
	{
		e = (Estudiante)It.next();
		e.PresentarEvaluacion();
		profesor.EvaluarEstudiante(e);
	}
         while (It.hasNext());

	 
			}
public void ListaCedula(){
	Estudiante y=new Estudiante ();
	int n=lestud.size()-1;
	for(int i =0;i<n;i++){
		for(int j=n;j>i;j--){
			e= lestud.get(j);
			y = lestud.get(j-1);
			if (e.getCedula()> y.getCedula()){
				lestud.set(j, y);
				lestud.set(j-1, e);
			}
			
		}
	}
}
public void ListaNota(){
	Estudiante y=new Estudiante ();
	int n=lestud.size()-1;
	for(int i =0;i<n;i++){
		for(int j=n;j>i;j--){
			e= lestud.get(j);
			y = lestud.get(j-1);
			if (e.getNfinal()> y.getNfinal()){
				lestud.set(j, y);
				lestud.set(j-1, e);
			}
			
		}
	}
}
public void ListaAprobado(){
	Iterator It=lestud.iterator();
	do
	{
		e = (Estudiante)It.next();
		if (e.isEstatu())
			laprobado.add(e);
	}
         while (It.hasNext());
	
}
public void ListaReprobado(){
	Iterator It=lestud.iterator();
	
	do
	{
		e = (Estudiante)It.next();
		if (!e.isEstatu())			
			lreprobado.add(e);
	}
         while (It.hasNext());
	
}
public float Promedio(){

	float acum=0;
	if (lestud.size()!=0)
	{
	Iterator It=lestud.iterator();
	do
	{
		e = (Estudiante)It.next();
		acum= acum+ e.getNfinal();
	}
         while (It.hasNext());
	
return (acum/lestud.size());
}
	else
		return acum;
}
public void Imprimir(){
	Iterator It=lestud.iterator();

	do
	{
		e = (Estudiante)It.next();
		
	}
         while (It.hasNext());
}

public void imprimirListas(){
Iterator It=lestud.iterator();

	try {
	
		java.io.BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter("Listas.txt"));
		do
		{
		e = (Estudiante)It.next();
		bufferedWriter.newLine();
		bufferedWriter.append("Nombre: "+e.getNombre()+" Apellido: "+e.getApellido()+" Cedula: "+e.getCedula()+ " Nota Final: "+ e.getNfinal());
		bufferedWriter.flush();
		bufferedWriter.newLine();
		}
	     while (It.hasNext());
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			}
	//System.out.println("Nombre: "+e.getNombre()+" Apellido: "+e.getApellido()+" Cedula: "+e.getCedula()+ " Nota Final: "+ e.getNfinal());
/*}
     while (It.hasNext());*/
     
}
public Estudiante Posicion(long cedula){
	int n=lestud.size();
	for (int i=0; i<n; i++){
		if(lestud.get(i).getCedula()==cedula)
			e=lestud.get(i);}
	return e;
}
		
/*	if(c==0)
	  System.out.println("El Estudiante No esta inscrito");
	}
	else
		System.out.println(" esta operacion no se puede realizar; no hay estudiantes registrados ");*/

}
